The present invention relates to a device within and a method processed by a Workflow Management System (WFMS). More particularly, the invention relates to a device and a method making resources/objects accessible to activities of said WFMS processing these resources/objects.
A new area of technology with increasing importance is the domain of Workflow-Management-Systems (WFMS). WFMS support the modeling and execution of business processes. Business processes control which piece of work of a network of pieces of work will be performed by whom and which resources are exploited for this work, i.e. a business process describes how an enterprise will achieve its business goals. The individual pieces of work might be distributed across a multitude of different computer systems connected by some type of network.
The process of designing, developing and manufacturing a new product and the process of changing or adapting an existing product presents many challenges to product managers and engineers to bring the product to market for the least cost and within schedule while maintaining or even increasing product quality. Many companies are realizing that the conventional product design process is not satisfactory to meet these needs. They require early involvement of manufacturing engineering, cost engineering, logistic planning, procurement, manufacturing, service and support with the design effort. Furthermore, they require planning and control of product data through design, release, and manufacturing.
The correct and efficient execution of business processes within a company, e.g. development or production processes, is of enormous importance for a company and has significant influence on company""s overall success in the market place. Therefore, those processes have to be regarded similar as technology processes and have to be tested, optimized and monitored. The management of such processes is usually performed and supported by a computer based process or workflow management system.
In D. J. Spoon: xe2x80x9cProject Management Environmentxe2x80x9d, IBM Technical Disclosure Bulletin, Vol. 32, No. 9A, February 1990, pages 250 to 254, a process management environment is described including an operating environment, data elements, and application functions and processes.
In R. T. Marshak: xe2x80x9cIBM""s FlowMark, Object-Oriented Workflow for Mission-Critical Applicationsxe2x80x9d, Workgroup Computing Report (USA), Vol. 17, No. 5, 1994, page 3 to 13, the object character of IBM FlowMark as a client/server product built on a true object model that is targeted for mission-critical production process application development and deployment is described.
In H. A. Inniss and J. H. Sheridan: xe2x80x9cWorkflow Management Based on an Object-Oriented Paradigmxe2x80x9d, IBM Technical Disclosure Bulletin, Vol. 37, No. 3, March 1994, page 185, other aspects of object-oriented modeling on customization and changes are described.
In F. Leymann and D. Roller: xe2x80x9cBusiness Process Management with FlowMarkxe2x80x9d, Digest of papers, Cat. No. 94CH3414-0, Spring COMPCON 94, 1994, pages 230 to 234, the state-of-the-art computer process management tool IBM FlowMark is described. The meta model of IBM FlowMark is presented as well as the implementation of IBM FlowMark. The possibilities of IBM FlowMark for modeling of business processes as well as their execution are discussed. The product IBM FlowMark is available for different computer platforms and documentation for IBM FlowMark is available in every IBM branch.
In F. Leymann: xe2x80x9cA meta model to support the modeling and execution of processesxe2x80x9d, Proceedings of the 11 th European Meeting on Cybernetics and System Research EMCR92, Vienna, Austria, Apr. 21 to 24, 1992, World Scientific 1992, pages 287 to 294, a meta model for controlling business processes is presented and discussed in detail.
The xe2x80x9cIBM FlowMark for OS/2xe2x80x9d, document number GH 19-8215-01, IBM Corporation, 1994, available in every IBM sales office, represents a typical modern, sophisticated, and powerful workflow management system. It supports the modeling of business processes as a network of activities; refer for instance to xe2x80x9cModeling Workflowxe2x80x9d, document number SH 19-8241, IBM Corporation, 1996. As further information on Workflow Management Systems available in IBM sales offices one could mention: IBM MQSeries Concepts and Architecture, document number GH 12-6285; IBM MQSeries Getting Started with Buildtime, document number SH 12-6286; IBM MQSeries Getting Started with Runtime, document number SH 12-6287. This network of activities, the process model, is constructed as a directed, acyclic, weighted, colored graph. The nodes of the graph represent the activities or workitems which are performed. The edges of the graph, the control connectors, describe the potential sequence of execution of the activities. Definition of the process graph is via the IBM FlowMark Definition Language (FDL) or the built-in graphical editor. The runtime component of the workflow manager interprets the process graph and distributes the execution of activities to the right person at the right place, e. g. by assigning tasks to a work list according to the respective person, wherein said work list is stored as digital data within said workflow or process management computer system.
In F. Leymann and W. Altenhuber: xe2x80x9cManaging business processes as an information resourcexe2x80x9d, IBM Systems Journal, Vol. 32(2), 1994, the mathematical theory underlying the IBM FlowMark product is described.
In D. Roller: xe2x80x9cVerifikation von Workflows in IBM FlowMarkxe2x80x9d, in J. Becker und G. Vossen (Hrsg.): xe2x80x9cGeschaeftsprozessmodellierung und Workflowsxe2x80x9d, International Thompson Publishing, 1995, the requirement and possibility of the verification of workflows is described. Furthermore the feature of graphical animation for verification of the process logic is presented as it is implemented within the IBM FlowMark product.
For implementing a computer based process management system, firstly the business processes have to be analyzed and, as the result of this analysis, a process model has to be constructed as a network of activities corresponding to the business process. In the IBM FlowMark product, the process models are not transformed into an executable. At run time, an instance of the process is created from the process model, called a process instance. This process instance is then interpreted dynamically by the IBM FlowMark product.
A user typically interacts with the workflow management system via a graphical end user that represents the tasks to be performed by the user as icons. Work for a particular task is started by the user by double-clicking on the appropriate icon which in turn starts the program implementing the activity.
It is important for the productivity of the user that the program complete its access to data as fast as possible to avoid delays in interacting with the user. In many cases WFMS are executed by a multitude of distributed computer systems accessing resources/objects which also are spread across the computer network. In such a distributed environment a user who controls execution of an activity assigned as a work item to him could suffer severe performance degradation until the system has been able to provide him with all required resources/objects. The problem becomes even worse if the activity has to access large resources/objects or if the activity requires access to a large number of resources/objects distributed across a large number of different computer systems.
The invention is based on the objective of improving the performance of the access of a WFMS activity activated by a user to resources/objects required by said activity. It is an objective at the same time to optimize the communication traffic of an activity accessing resources/objects during execution.
The invention relates to one or a multitude of computer systems acting as a Workflow-Management-System (WFMS), wherein said WFMS comprises a process-model defining at least one process-activity managed and executed by said WFMS and wherein said WFMS comprises a WFMS-server, said WFMS-server performing navigation through said process-model and performing resolution. Resolution is done by selecting a next-process-activity to be executed by said WFMS, and by selecting a WFMS-agent to execute said next-process-activity. According to the present invention said computer system comprises a stager storing, after performing said resolution, resources required for execution of said next-process-activity from one or a multitude of source-locations at a WMF-staging-location. Said WFMS-agent uses said resources from said WFMS-staging-location for execution of said next-process-activity.
The technique proposed by the present invention significantly improves performance with respect to the access of an executing activity to resources accessed by said activity. This is due to the fact that all resources required by said activity can be stored to and made available by an arbitrary WFMS staging location being placed xe2x80x9ccloserxe2x80x9d (in terms of access time, for instance due large bandwidth or huge processing power) to the system executing the activity. This increases the productivity of the user as the program completes its access to data as fast as possible to avoid delays in interacting with the user. The teaching of the present invention is of specific advantage as in many cases WFMS are executed by a multitude of distributed computer systems accessing resources/objects which also are spread across the computer network. In such a distributed environment a user who controls execution of an activity assigned as a work item to him could suffer severe productivity degradation until the system has been able to provide him with all required resources/objects; the present solutions avoids this. The advantages are also remarkable if the activity has to access large resources/objects or if the activity requires access to a large number of resources/objects distributed across a large number of different computer systems. Finally the present invention would reduce the network traffic as it is more economical to transfer a certain amount of data in a single bulk data transfer compared to the situation of transferring the same amount of data via a larger number of transfer requests. Moreover, the suggested teaching is flexible in the sense that it is not required to adapt the program implementing the activity in any way. The present invention does not enforce the stager to be a component of the WFMS (of course that could be the case), offering large spectrum of implementation possibilities. For instance, the stager could also be implemented as an xe2x80x9cexitxe2x80x9d.
Additional advantages are accomplished by a WFMS wherein said WFMS-agent stores output generated by execution of said next-process-activity at said WFMS-staging-location and said WFMS, after completion of said next-process-activity, stores said output to said source-location.
Due to such a teaching also the manipulative access to the resources is supported and experiences significant speed-up for write/modify access.
Additional advantages are accomplished if said storing of said output is performed by said stager.
As the stager takes care to write the generated output back to the original storage locations the present teaching is completely transparent to the level of programs implementing activities. The complexity of implementing such programs is therefore reduced. The staging facility has to be implemented once but can be exploited by all programs.
Additional advantages are accomplished by said WFMS, wherein said stager is called by said WFMS-server or by said WFMS-agent.
The WFMS-server or the WFMS-agent are the optimal instance to call the stager as both of them have the knowledge when one activity has terminated and the WFMS is ready to process the next activity according the process model. Thus the overall processing effort is minimized if either the WFMS server or the WFMS client is responsible for calling the stager. This is at least true as far as the stager is storing, after completion of said next-process-activity, the output to said source location. In a WFMS in which navigation is performed by the WFMS only, it might be a better choice to invoke the stager by the WFMS server. The latter approach would guarantee data consistency as the WFMS server would not invoke the next process activity before the stager has stored the output to the source location.
Additional advantages are accomplished if said resources comprise data and/or a program required for execution of said next-process-activity.
On one hand flexibility of the present teaching is increased, if no limitation is imposed upon the nature of the resources. On the other hand supporting both, data and code, makes the present approach open for object-oriented approaches. Even more, the present teaching could also be used to stage the program implementing the activity to be executed by a user to the WFMS staging location; thus the WFMS agent would be enabled to access that program faster for its execution.
Additional advantages are accomplished if said WFMS-staging-location is selected dynamically from a predefined set of WFMS-staging-locations. Moreover it is advantageous to select said WFMS-staging-location such that said resources can be accessed on said WFMS-staging-location with improved performance compared to an access from their source-location.
A dynamic selection process allows the WFMS to take into account for the selection all changes occurring within the WFMS up to the point in time of the selection. Moreover the selection can also consider the system load, transmission load within the network etc. for an optimal selection of an WFMS staging location.
Additional advantages are accomplished if said stager is located on said WFMS-server.
As the WFMS server stores the complete process model and the activities are parts of it, all knowledge required for the stager to perform its work is available on the WFMS server. If the WFMS server and the stager share a common system, communication overhead within a distributed environment is minimized.
According to a further embodiment of the invention said WFMS performs said resolution by further selecting a WFMS-client to control execution of said next-process-activity by a work-item and said WFMS providing said work-item to said WFMS-client. Additional advantages are accomplished by not presenting said work-item to a user before said resources have been stored to said WFMS-staging-location.
As a work item is presented to the user after the resources have been stored to the WFMS staging location (from where they can be accessed in an optimal way) the user will not realize the processing time (latency period) required to make the resources available at the WFMS staging sever. The user will fully enjoy the performance improvements.
According to a further embodiment of the invention, said process-activity has associated with it at least one input-container. Additional advantages are accomplished if said resources are determined from the contents of said input-container of said next-process-activity. Further advantages are achieved if said stager determines said resources.
These features of the present invention allow implementation of the invention within an existing WFMS with minimal modifications to the WFMS. As an input container already stores information regarding which data the corresponding activity will require for its processing, a separate stager could exploit this information for locating these resources, transferring and storing the resources on the WFMS staging location.
According to a further embodiment of the invention said WFMS-staging-location and said WFMS-agent are located on the same computer system, or said WFMS-client and said WFMS-agent are located on the same computer system, or said WFMS-staging-location, said WFMS-agent and said WFMS-client are located on the same computer system.
According to the various characteristics of the actual distributed processing environment the present teaching suggests instantiating the WFMS staging location, the WFMS agent and the WFMS-client on the same or different computer systems for achieving the best performance results. In most cases performance is optimal if the WFMS staging location, the WFMS agent and the WFMS-client are located on the same computer system.
According to a further embodiment of the invention access to said WFMS-staging-location is managed through a WMFS-staging-server.
With this feature the implementation of a stager could be simplified as the knowledge of how to access the resources staged to the WFMS staging location is provided by the separate WFMS staging server.
Another embodiment of the invention relates to a method of staging resources in a Workflow-Management-System (WFMS), wherein said WFSM comprises a process-model defining at least one process-activity managed and executed by said WFMS and said WFMS performs navigation through said process-model. The proposed method comprises a resolution-step, wherein a next-process-activity to be executed by said WFMS is selected, and wherein a WFMS-agent to execute said next-process-activity is selected. The proposed method further comprises a staging-step storing resources required for execution of said next-process-activity from one or a multitude of source-locations at a WMF-staging-location. Moreover the proposed method comprises a usage-step, wherein said WFMS-agent uses said resources from said WFMS-staging-location for execution of said next-process-activity.
With respect to the advantages achieved by said method features refer to the corresponding device features discussed above.
According to a further embodiment of the invention a method of staging resources is taught wherein in said usage-step said WFMS-agent is storing output generated by execution of said next-process-activity onto said WFMS-staging-location. In addition said method comprises a restore-step succeeding said usage-step, wherein after completion of said next-process-activity, said output is restored to said source-location.
With respect to the advantages achieved by said method features refer to the corresponding device features discussed above.
According to a further embodiment of the invention a method of staging resources is taught wherein said resources comprise data and/or a program required for execution of said next-process-activity.
With respect to the advantages achieved by said method features refer to the corresponding device features discussed above.
According to a further embodiment of the invention a method of staging resources is taught wherein in said staging-step said WFMS-staging-location is selected such that said resources can be accessed on said WFMS-staging-location with improved performance compared to an access from their source-location.
With respect to the advantages achieved by said method features refer to the corresponding device features discussed above.
According to a further embodiment of the invention, a method of staging resources is taught which comprises a work-item-presentation-step succeeding said staging-step and presenting a work-item to a user, said work-item allowing said user to control execution of said next-process-activity from a WFMS-client.
With respect to the advantages achieved by said method features refer to the corresponding device features discussed above.
According to a further embodiment of the invention, a method of staging resources is taught wherein in said staging-step said resources are determined from the contents of one or more input-containers of said next-process-activity, said input-containers being associated with said next-process-activity.
With respect to the advantages achieved by said method features refer to the corresponding device features discussed above.